package com.sunda.spmsuser.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsuser.entity.SpmsUser;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * SPMS用户信息表 服务类
 * </p>
 *
 * @author Wayne
 * @since 2021-01-25
 */
public interface ISpmsUserService extends IService<SpmsUser> {

    /** 根据用户工号查询用户信息 */
    SpmsUser getByUserId(String userId);

    /** 获取系统全部用户信息-使用 mybatis-plus Wrapper 自带分页方法 */
    IPage<SpmsUser> spmsUserList(Page<SpmsUser> page);

    List<SpmsUser> getAllSpmsUserList();

    /** 新建用户，保存用户个人信息，及关联的角色、工厂、仓库、车间信息 */
    ResponseResult createSpmsUser(JSONObject doc, String MDPassword);

    /** 更新登录密码 */
    ResponseResult updatePassword(String userId, String MDPassword);

    /** OA单点登录时，如果用户不存在则实时从OA获取用户信息写入SPMS系统 */
    void oaCreateSpmsUser(Map<String, Object> map, String MDPassword);

    /** SPMS 跟 OA 系统同步用户个人信息 */
    ResponseResult updateSpmsUserInfo(Map<String, Object> map);
}
